﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using NIEN_LUAN.Db;
using System.Windows.Forms;

namespace NIEN_LUAN
{
    public partial class FormTimKiemKhachHang : Form
    {
        private DataContentDataContext db = new DataContentDataContext();
        private FormTimKiemChungTu frmTimKiemChungTu;
        private FormThongKeChungTu frmThongKeChungTu;
        private FormCongNoKhachHang frmCongnokhachhang;
        private FormLapChungTu frmLapChungTu;

        public FormTimKiemKhachHang()
        {
            InitializeComponent();
        }

        public FormTimKiemKhachHang(FormTimKiemChungTu frm)
        {
            InitializeComponent();
            frmTimKiemChungTu = frm;
            this.btnAdd.Visible = true;
        }

        public FormTimKiemKhachHang(FormLapChungTu frm)
        {
            this.frmLapChungTu = frm;
            InitializeComponent();
            this.btnAdd.Visible = true;
            this.btnSuaKH.Enabled = false;
            this.btnXoaKH.Enabled = false;
        }

        public FormTimKiemKhachHang(FormThongKeChungTu frm)
        {
            InitializeComponent();
            frmThongKeChungTu = frm;
            this.btnAdd.Visible = true;
        }

        public FormTimKiemKhachHang(FormCongNoKhachHang frm)
        {
            InitializeComponent();
            frmCongnokhachhang = frm;
            this.btnAdd.Visible = true;
        }

        private void btnTimKH_Click(object sender, EventArgs e)
        {
            if (this.checkBoxTenKhachHang.Checked && !this.checkBoxTimkiemDC.Checked && !this.checkBoxTimkiemSDTKH.Checked)
            {
                if (string.IsNullOrEmpty(this.txtTenKH.Text))
                {
                    MessageBox.Show("Chưa nhập tên khách hàng", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                
                var khachhang = (from m in db.KHACHHANGs
                                 where m.TenKhachHang.StartsWith(this.txtTenKH.Text)
                                 select m).ToList();
                this.kHACHHANGBindingSource.DataSource = khachhang;
                this.kHACHHANGBindingSource.ResetBindings(true);
                return;
            }

            if (!this.checkBoxTenKhachHang.Checked && this.checkBoxTimkiemDC.Checked && !this.checkBoxTimkiemSDTKH.Checked)
            {
                if (string.IsNullOrEmpty(this.txtDCKH.Text))
                {
                    MessageBox.Show("Chưa nhập địa chỉ khách hàng", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                var khachhang = (from m in db.KHACHHANGs
                                 where m.DiaChi.StartsWith(this.txtDCKH.Text)
                                 select m).ToList();
                this.kHACHHANGBindingSource.DataSource = khachhang;
                this.kHACHHANGBindingSource.ResetBindings(true);
                return;
            }

            if (!this.checkBoxTenKhachHang.Checked && !this.checkBoxTimkiemDC.Checked && this.checkBoxTimkiemSDTKH.Checked)
            {
                if (string.IsNullOrEmpty(this.txtTenKH.Text))
                {
                    MessageBox.Show("Chưa nhập số điện thoại khách hàng", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                var khachhang = (from m in db.KHACHHANGs
                                 where m.SoDienThoai == this.txtDTKH.Text
                                 select m).ToList();
                this.kHACHHANGBindingSource.DataSource = khachhang;
                this.kHACHHANGBindingSource.ResetBindings(true);
                return;
            }

            if (this.checkBoxTenKhachHang.Checked && this.checkBoxTimkiemDC.Checked && !this.checkBoxTimkiemSDTKH.Checked)
            {
                if (string.IsNullOrEmpty(this.txtTenKH.Text))
                {
                    MessageBox.Show("Chưa nhập tên khách hàng", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                if (string.IsNullOrEmpty(this.txtDCKH.Text))
                {
                    MessageBox.Show("Chưa nhập địa chỉ khách hàng", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                var khachhang = (from m in db.KHACHHANGs
                                 where ((m.TenKhachHang.StartsWith(this.txtTenKH.Text)) && (m.DiaChi.StartsWith(this.txtDCKH.Text)))
                                 select m).ToList();
                this.kHACHHANGBindingSource.DataSource = khachhang;
                this.kHACHHANGBindingSource.ResetBindings(true);
                return;
            }

            if (this.checkBoxTenKhachHang.Checked && !this.checkBoxTimkiemDC.Checked && this.checkBoxTimkiemSDTKH.Checked)
            {
                if (string.IsNullOrEmpty(this.txtTenKH.Text))
                {
                    MessageBox.Show("Chưa nhập tên khách hàng", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                if (string.IsNullOrEmpty(this.txtTenKH.Text))
                {
                    MessageBox.Show("Chưa nhập số điện thoại khách hàng", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                var khachhang = (from m in db.KHACHHANGs
                                 where ((m.TenKhachHang.StartsWith(this.txtTenKH.Text)) && (m.SoDienThoai == this.txtDTKH.Text))
                                 select m).ToList();
                this.kHACHHANGBindingSource.DataSource = khachhang;
                this.kHACHHANGBindingSource.ResetBindings(true);
                return;
            }

            if (!this.checkBoxTenKhachHang.Checked && this.checkBoxTimkiemDC.Checked && this.checkBoxTimkiemSDTKH.Checked)
            {
                if (string.IsNullOrEmpty(this.txtDCKH.Text))
                {
                    MessageBox.Show("Chưa nhập địa chỉ khách hàng", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                if (string.IsNullOrEmpty(this.txtDTKH.Text))
                {
                    MessageBox.Show("Chưa nhập số điện thoại khách hàng", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                var khachhang = (from m in db.KHACHHANGs
                                 where ((m.DiaChi.StartsWith(this.txtDCKH.Text)) && (m.SoDienThoai == this.txtDTKH.Text))
                                 select m).ToList();
                this.kHACHHANGBindingSource.DataSource = khachhang;
                this.kHACHHANGBindingSource.ResetBindings(true);
                return;
            }

            if (this.checkBoxTenKhachHang.Checked && this.checkBoxTimkiemDC.Checked && this.checkBoxTimkiemSDTKH.Checked)
            {
                if (string.IsNullOrEmpty(this.txtDCKH.Text))
                {
                    MessageBox.Show("Chưa nhập địa chỉ khách hàng", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                if (string.IsNullOrEmpty(this.txtTenKH.Text))
                {
                    MessageBox.Show("Chưa nhập số điện thoại khách hàng", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                if (string.IsNullOrEmpty(this.txtTenKH.Text))
                {
                    MessageBox.Show("Chưa nhập tên khách hàng", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                var khachhang = (from m in db.KHACHHANGs
                                 where ((m.DiaChi.StartsWith(this.txtDCKH.Text)) && (m.SoDienThoai == this.txtDTKH.Text) && (m.TenKhachHang.StartsWith(this.txtTenKH.Text)))
                                 select m).ToList();
                this.kHACHHANGBindingSource.DataSource = khachhang;
                this.kHACHHANGBindingSource.ResetBindings(true);
                return;
            }

            if (!this.checkBoxTenKhachHang.Checked && !this.checkBoxTimkiemDC.Checked && !this.checkBoxTimkiemSDTKH.Checked)
            {
                var khachhang = (from m in db.KHACHHANGs
                                 select m).ToList();
                this.kHACHHANGBindingSource.DataSource = khachhang;
                this.kHACHHANGBindingSource.ResetBindings(true);
                return;
            }
        }

        private void btnThoatKH_Click(object sender, EventArgs e)
        {
            this.Close(); 
        }

        public KHACHHANG KhachHangSua = new KHACHHANG();      
        private void btnSuaKH_Click(object sender, EventArgs e)
        {
//<<<<<<< .mine
//            //Form frmSuaKH = new FormChiTietKhachHang();
//            //frmSuaKH.ShowDialog(); 
//=======
//           /* Form frmSuaKH = new FormChiTietKhachHang();
//            frmSuaKH.ShowDialog(); */
//>>>>>>> .r91
            var khachhang = this.kHACHHANGBindingSource.Current as KHACHHANG;
            if (khachhang != null)
            {
                KhachHangSua = khachhang;
                var kq = new FormChiTietKhachHang(KhachHangSua, this).ShowDialog();
                if (kq == DialogResult.OK)
                {
                    khachhang.DiaChi = KhachHangSua.DiaChi;
                    khachhang.TenKhachHang = KhachHangSua.TenKhachHang;
                    khachhang.SoDienThoai = KhachHangSua.SoDienThoai;

                    this.kHACHHANGBindingSource.ResetCurrentItem();
                    MessageBox.Show("Đã cập nhật dữ liệu", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }

            }   

        }

        private void FormTimKiemKhachHang_Load(object sender, EventArgs e)
        {
            this.dataGridViewDSKH.AutoGenerateColumns = false;
            var khachhang = (from kh in db.KHACHHANGs
                             orderby kh.MaKhachHang ascending
                             select kh
                                 ).ToList();
            this.kHACHHANGBindingSource.DataSource = khachhang;
        }

        private void btnXoaKH_Click(object sender, EventArgs e)
        {
            var khachhang = this.kHACHHANGBindingSource.Current as KHACHHANG;
            if (khachhang != null)
            {
                var kq = (from m in db.CHUNGTUs
                          where m.MaKhachHang == khachhang.MaKhachHang
                          select m).Count();
                if (kq > 0)
                {
                    MessageBox.Show("Khách hàng này đang nằm chứng từ chưa thanh toán xong !! Không thể xóa! ");
                    return;
                }
                var tl = MessageBox.Show("bạn có chắc chắn xóa?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (tl == DialogResult.Yes)
                {
                    try
                    {
                        db.KHACHHANGs.DeleteOnSubmit(khachhang);
                        db.SubmitChanges();
                        this.kHACHHANGBindingSource.RemoveCurrent();
                        MessageBox.Show("Đã xóa");
                        return;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Đã có lỗi xảy ra Chi tiết lỗi : " + ex.Message);
                        return;
                        //  throw;
                    }
                }
            }
            else
            {
                MessageBox.Show("Vui lòng chọn khách hàng cần xóa!");
            }
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            var khahchang = this.kHACHHANGBindingSource.Current as KHACHHANG;
            if (khahchang != null)
            {
                // this.frmLapChungTu.txtMaKH.Text = khachhang.MaKhachHang;
                if (frmTimKiemChungTu != null)
                {
                    this.DialogResult = DialogResult.OK;
                    this.frmTimKiemChungTu.comboBoxKH.Text = khahchang.MaKhachHang;
                    this.Close();
                }

                if (frmThongKeChungTu != null)
                {
                    this.DialogResult = DialogResult.OK;
                    this.frmThongKeChungTu.comboBoxKH.Text = khahchang.MaKhachHang;
                    this.Close();
                }

                if (frmCongnokhachhang != null)
                {
                    this.DialogResult = DialogResult.OK;
                    this.frmCongnokhachhang.comboBoxKH.Text = khahchang.MaKhachHang;
                    this.Close();
                }

                if (frmLapChungTu != null)
                {
                    this.DialogResult = DialogResult.OK;
                    this.frmLapChungTu.comboBoxKH.Text = khahchang.MaKhachHang;
                    this.Close();
                }
            }
        }
    }
}
